UDS 入门指南
车辆诊断技术
早期汽车诊断只能依靠人直观检查和判断,随着电气化技术的引入,现代汽车集成了大量的微控制器。传统的方法已经无能为力,因此车辆的自诊断技术便应运而生。汽车诊断分为两种,一种是法规强制要求的,也就是经常听到的 OBD(On Board Diagnostic)诊断。主要用于在车辆运行阶段能够及时的通知故障信息,给驾驶员以警告或提示。另一种是 UDS,也叫增强型或者离线诊断(Off Board Diagnostic)。
UDS 是什么
UDS 全称是 Unified Diagnostic Services,翻译过来是统一的诊断服务,是在汽车电子 ECU 环境下的一种诊断通信协议。诊断仪通过 UDS 协议可以对车辆进行一系列的操作,通过查询数据或者控制变量的方法对车辆进行诊断,确认是否有问题或者发生了什么问题,从而指导维修。
如何学习 UDS 协议
所有协议的最详细的描述都是其规范文件。可能是国际标准规范文件,也可能是某个特定公司的规范文件。这些都是深究协议细节时第一手的资料。下面我们来详细分析一下 UDS 涉及到哪些国际标准规范文件。在 ISO 14229-1 的文档中给出了概括性的描述。从下图可以看出 UDS 规范从 OSI 模型的第五层和第七层(会话层和应用层)进行了描述。
这么多协议我们先从哪一个入手呢?我的经验是从应用层的 ISO 14229-1 协议开始入手,先从整体上了解 UDS 包含哪些功能,再根据实际需求深究其他部分的细节。
ISO 14229-1 协议规定的 UDS 功能分类
ISO 14229-1 协议中定义了 6 类功能,26 种服务,分别是:
- 诊断和通信管理功能单元,包括 0x10、0x11、0x27、0x28、0x3E、0x83、0x84、0x85、0x86、0x87 共 10 种服务;
- 数据传输功能单元,包括 0x22、0x23、0x24、0x2A、0x2C、0x2E、0x3D 共 7 种服务;
- 存储数据传输功能单元,包括 0x14、0x19 共 2 种服务;
- 输入输出控制功能单元,包括 0x2F 服务;
- 远程激活例程功能单元,包括 0x31 服务;
- 上传下载控制功能单元,包括 0x34、0x35、0x36、0x37、0x38 共 5 种服务。